package annotation04;

import annotation03.Color;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * //元注解(可写可不写)
 * public @interface 注解名称{
 * //注解属性
 * 数据类型 属性名称();
 * 数据类型 属性名称() default 默认值;//代表当前属性的默认值
 * }
 * 注解中属性的数据类型:
 * 1.Java中八大基本类型
 * 2.String,Class,enum,注解类型
 * 3.以上所有类型的一维数组
 * Java中注解在不指名位置的情况下,可以用在包上,类上,方法上,方法的形参上等
 */

@Target({ElementType.TYPE, ElementType.METHOD})//代表MyAnnotation注解只能用在类,接口,方法上
@Retention(RetentionPolicy.RUNTIME)////代表注解会保留到程序运行阶段(JVM加载使用到该注解的类时,依然会会保留该注解)

public @interface MyAnnotation {
    String value();

    int num() default 0;
    String name() default "小张";

    annotation03.Color color() default Color.RED;

}
